#ifndef USERSMGR_H
#define USERSMGR_H

#include <QObject>
#include <QList>

#include "user.h"
#include <sqlite3/sqlite3.h>

class UsersMgr {
public:
    typedef QList<User> Users;

    UsersMgr();
    virtual ~UsersMgr();

    const Users& getUsers() const;

    virtual void reload() = 0;

protected:
    Users users_;
};

class DBUsersMgr : public UsersMgr {
public:
    DBUsersMgr(const QString& usersDbFile);
    virtual ~DBUsersMgr();

    virtual const Users& getUsers() const;
    virtual void reload();

private:
    void connect();

protected:
    QString dbFileName_;

    sqlite3* db_;
};

#endif // USERSMGR_H
